package com.cry.todo.dao;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import com.cry.todo.domain.User;
import com.cry.todo.domain.audit.AuditRevision;
import com.cry.todo.domain.project.Category;
import com.cry.todo.domain.project.Project;
import com.cry.todo.domain.project.ProjectSearch;
import com.cry.todo.domain.project.Status;

public interface ProjectDao  {
	public Serializable saveOrUpdate(Project t, User user);
	public List<Project> findChildren(int parentID);
	public int countChildren(int id);
	public List<Project> findChildren(int id, Integer startRow, Integer displayRow);
	public List<Project> findChildren(int id, Integer startRow,	Integer displayRow, String orderColumn, String orderDir);
	public ArrayList<Project> getParents(Project item);
	public ArrayList<Status> loadStatuses();
	public ArrayList<Category> loadCategories();
	public Category loadCategory(Integer id);
	public Project loadById(int id);
	public List<Project> loadAll();
	public List<AuditRevision<Project>> findRevisionsById(int id);
	public void addComment(Project item, String comment, User user);
	public List<Project> search(ProjectSearch criteria);
	public ProjectSearch getLasProjectSearch(User user);
	public void saveLastProjectSearch(ProjectSearch item, User user);
	public List<Project> search(ProjectSearch item, Integer startRow, Integer displayRow, String orderColumn, String orderDir);
}
